home *** CD-ROM | disk | FTP | other *** search
- package java.beans;
-
- import java.lang.reflect.InvocationHandler;
- import java.lang.reflect.Proxy;
- import java.util.Vector;
-
- class ProxyPersistenceDelegate extends PersistenceDelegate {
- protected Expression instantiate(Object var1, Encoder var2) {
- Class var3 = var1.getClass();
- Proxy var4 = (Proxy)var1;
- InvocationHandler var5 = Proxy.getInvocationHandler(var4);
- if (var5 instanceof EventHandler) {
- EventHandler var6 = (EventHandler)var5;
- Vector var7 = new Vector();
- var7.add(var3.getInterfaces()[0]);
- var7.add(var6.getTarget());
- var7.add(var6.getAction());
- if (var6.getEventPropertyName() != null) {
- var7.add(var6.getEventPropertyName());
- }
-
- if (var6.getListenerMethodName() != null) {
- var7.setSize(4);
- var7.add(var6.getListenerMethodName());
- }
-
- return new Expression(var1, EventHandler.class, "create", var7.toArray());
- } else {
- return new Expression(var1, Proxy.class, "newProxyInstance", new Object[]{var3.getClassLoader(), var3.getInterfaces(), var5});
- }
- }
- }
-